package main
import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"math/rand"
	"os"
	"time"
)



func main() {

	count := map[string]int{}
	c, _ := ioutil.ReadFile("database.txt")
	json.Unmarshal(c, &count)

	// 存放同学姓名的切片
	students := []string{"史伟名", "易鸽玲", "金航波","粟檬","严东豪","肖扬","文笔" }
	// 随机数种子
	rand.Seed(time.Now().UnixNano())
	// 循环直到切片中所有同学都被抽到或用户输入q退出
	for len(students) !=0 {
		var input string
		fmt.Print("按任意键随机抽取同学，按q退出：")
		fmt.Scanln(&input)
		if input == "q" {
			fmt.Println("退出随机点名系统")
			return
		}
		// 随机生成一个下标
		num := rand.Intn(len(students))
		// 输出被抽中的同学姓名
		fmt.Printf(" %s 被抽中回答问题！\n", students[num])
		// 从切片中删除被抽中的同学姓名
		students = append(students[:num], students[num+1:]...)
	}
	fmt.Println("所有同学都已经被抽到")
	//写入文件
	file, _ := os.Create("database.txt")
	data, _ := json.Marshal(count)
	file.Write(data)
	defer file.Close()
}

func random(min, max int) int {
	rand.Seed(time.Now().Unix())
	return rand.Intn(max - min) + min
}